package com.cskayan.javase.object._7wrapper;

/**
 * 首先查看一个经典报错：
 * Non-static field 'start' cannot be referenced from a static context
 * 意译过来，就是在一个静态（static）的方法中无法访问一个非静态的成员变量。
 *
 * 什么是包装类？
 * 大家都知道：Java是面向对象的语言，Java当中万物皆对象。
 * 但这句话并不严谨，因为Java不是完全面向对象的编程语言。因为Java还有基本数据类型变量，它们不是对象。
 * 所以为了弥补基本数据类型变量非对象的尴尬境地，并且我们确有需求把基本数据类型变量也当成一个对象使用，Java引入包装类的技术。
 * 所谓包装类，就是把基本数据类型包装成引用数据类型，变成一个个对象。
 *
 * 比较典型的有:
 * int --> Integer (int本身就是integer单词的缩写,这里不过是补全了)
 * Integer.MAX_VALUE就是int类型的最大值
 * 注意Java的整型数据类型,它的取值范围不是一个数轴,而是一个圆环,首尾相连的
 * 最大值 + 1 就会变成最小值
 * 因为计算机中存在溢出的概念.
 *
 * @since 15:08
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    static int end = Integer.MAX_VALUE;
    static int start = end - 5;

    public static void main(String[] args) {
        int count = 0;
        for (int i = start; i < end; i++) {
            count++;
        }
        /*
            count的取值是多少呢?
            5
            6
            7
            ...
            实际上这里应该是一个死循环,因为int类型最大值+1会溢出,成为最小值
         */
        System.out.println(count);
    }
}
